ClamAVのバージョン0.98.7がepelリポジトリで利用可能になった。rpmforgeのClamAVが0.98.4からなかなかアップデートされないので、epelのClamAV 0.98.7に入れ替えることにした。(4月29日にバージョン0.98.6のインストールとして書いたが、5月9日に0.98.7になったので、ClamAV 0.98.7 インストールに修正)
インストールされてるclamをアンインストール
[root@server2 ~]# yum -y remove clam*
設定ファイルを削除
[root@server2 ~]# rm /etc/cron.daily/clamdscan
[root@server2 ~]# rm /etc/tmpfiles.d/clamd.conf
yumのリポジトリ確認
[root@server2 ~]# cd /etc/yum.repos.d
[root@server2 yum.repos.d]# ls -la
合計 72
drwxr-xr-x. 2 root root 4096 4月 25 14:47 .
drwxr-xr-x. 154 root root 12288 4月 25 10:33 ..
-rw-r--r-- 1 root root 1656 9月 14 2014 CentOS-Base.repo
-rw-r--r-- 1 root root 1664 8月 23 2014 CentOS-Base.repo.rpmnew
-rw-r--r-- 1 root root 1309 4月 1 07:27 CentOS-CR.repo
-rw-r--r-- 1 root root 649 4月 1 07:27 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 1331 4月 1 07:27 CentOS-Sources.repo
-rw-r--r-- 1 root root 1002 4月 1 07:27 CentOS-Vault.repo
-rw-r--r-- 1 root root 290 4月 1 07:27 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 1056 11月 26 01:23 epel-testing.repo
-rw-r--r-- 1 root root 972 4月 25 14:47 epel.repo
-rw-r--r-- 1 root root 739 6月 12 2014 mirrors-rpmforge
-rw-r--r-- 1 root root 717 6月 12 2014 mirrors-rpmforge-extras
-rw-r--r-- 1 root root 728 6月 12 2014 mirrors-rpmforge-testing
-rw-r--r-- 1 root root 1128 1月 2 21:46 rpmforge.repo
2015年5月10日現在、yumでインストール可能なclamパッケージ
[root@server2 yum.repos.d]# cd
[root@server2 ~]# yum list | grep clam
clamav.x86_64 0.98.7-1.el7 epel
clamav-data.noarch 0.98.7-1.el7 epel
clamav-filesystem.noarch 0.98.7-1.el7 epel
clamav-lib.x86_64 0.98.7-1.el7 epel
clamav-update.x86_64 0.98.7-1.el7 epel
clamav-data-empty.noarch 0.98.7-1.el7 epel
clamav-db.x86_64 0.98.4-1.el7.rf rpmforge
clamav-devel.x86_64 0.98.7-1.el7 epel
clamav-milter.x86_64 0.98.7-1.el7 epel
clamav-milter-systemd.noarch 0.98.7-1.el7 epel
clamav-milter-sysvinit.noarch 0.98.7-1.el7 epel
clamav-scanner.noarch 0.98.7-1.el7 epel
clamav-scanner-systemd.noarch 0.98.7-1.el7 epel
clamav-scanner-sysvinit.noarch 0.98.7-1.el7 epel
clamav-server.x86_64 0.98.7-1.el7 epel
clamav-server-systemd.noarch 0.98.7-1.el7 epel
clamav-server-sysvinit.noarch 0.98.7-1.el7 epel
clamd.x86_64 0.98.4-1.el7.rf rpmforg
CentOSの場合、clamはyumリポジトリのepelとrpmforgeの両方で提供されているが、インストールされてるバージョンよりも別のリポジトリのバージョンが新しくなると、yum updateが失敗する問題が発生する。clamの更新は、インストール元以外のリポジトリのclamを除外し、インストール元のリポジトリからのみ行われるようにする
今回は、epelのclamを使うのでrpmforge.repoのclamを除外
[root@server2 ~]# vi /etc/yum.repos.d/rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 7 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
exclude=clam* ← epelのclamを使うのでrpmforgeのclamは除外
(yum updateのエラー対策)
rpmforgeが無効になってるか確認
[root@server2 ~]# yum list | grep clam
clamav.x86_64 0.98.7-1.el7 epel
clamav-data.noarch 0.98.7-1.el7 epel
clamav-filesystem.noarch 0.98.7-1.el7 epel
clamav-lib.x86_64 0.98.7-1.el7 epel
clamav-update.x86_64 0.98.7-1.el7 epel
clamav-data-empty.noarch 0.98.7-1.el7 epel
clamav-devel.x86_64 0.98.7-1.el7 epel
clamav-milter.x86_64 0.98.7-1.el7 epel
clamav-milter-systemd.noarch 0.98.7-1.el7 epel
clamav-scanner.noarch 0.98.7-1.el7 epel
clamav-scanner-systemd.noarch 0.98.7-1.el7 epel
clamav-server.x86_64 0.98.7-1.el7 epel
clamav-server-systemd.noarch 0.98.7-1.el7 epel
clamav-server-sysvinit.noarch 0.98.7-1.el7 epel
clamavとclamav-updateをインストール
[root@server2 ~]# yum -y install clamav clamav-update
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
* base: ftp.yz.yamagata-u.ac.jp
* centosplus: ftp.yz.yamagata-u.ac.jp
* epel: ftp.cuhk.edu.hk
* extras: ftp.yz.yamagata-u.ac.jp
* rpmforge: ftp.neowiz.com
* updates: ftp.yz.yamagata-u.ac.jp
84 packages excluded due to repository priority protections
依存性の解決をしています
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> トランザクションの確認を実行しています。
---> パッケージ clamav.x86_64 0:0.98.7-1.el7 を インストール
--> 依存性の処理をしています: clamav-lib = 0.98.7-1.el7 のパッケージ: clamav-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: libclamav.so.6(CLAMAV_PUBLIC)(64bit) のパッケージ: clamav-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: libclamav.so.6(CLAMAV_PRIVATE)(64bit) のパッケージ: clamav-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: data(clamav) のパッケージ: clamav-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: libclamav.so.6()(64bit) のパッケージ: clamav-0.98.7-1.el7.x86_64
---> パッケージ clamav-update.x86_64 0:0.98.7-1.el7 を インストール
--> 依存性の処理をしています: clamav-filesystem = 0.98.7-1.el7 のパッケージ: clamav-update-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: group(clamupdate) のパッケージ: clamav-update-0.98.7-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ clamav-data.noarch 0:0.98.7-1.el7 を インストール
---> パッケージ clamav-filesystem.noarch 0:0.98.7-1.el7 を インストール
---> パッケージ clamav-lib.x86_64 0:0.98.7-1.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
====================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
====================================================================================================
インストール中:
clamav x86_64 0.98.7-1.el7 epel 806 k
clamav-update x86_64 0.98.7-1.el7 epel 89 k
依存性関連でのインストールをします:
clamav-data noarch 0.98.7-1.el7 epel 95 M
clamav-filesystem noarch 0.98.7-1.el7 epel 19 k
clamav-lib x86_64 0.98.7-1.el7 epel 3.7 M
トランザクションの要約
====================================================================================================
インストール 2 パッケージ (+3 個の依存関係のパッケージ)
総ダウンロード容量: 99 M
インストール容量: 108 M
Downloading packages:
(1/5): clamav-0.98.7-1.el7.x86_64.rpm | 806 kB 00:00:00
(2/5): clamav-filesystem-0.98.7-1.el7.noarch.rpm | 19 kB 00:00:00
(3/5): clamav-lib-0.98.7-1.el7.x86_64.rpm | 3.7 MB 00:00:00
(4/5): clamav-update-0.98.7-1.el7.x86_64.rpm | 89 kB 00:00:00
(5/5): clamav-data-0.98.7-1.el7.noarch.rpm | 95 MB 00:00:11
----------------------------------------------------------------------------------------------------
合計 8.9 MB/s | 99 MB 00:00:11
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : clamav-filesystem-0.98.7-1.el7.noarch 1/5
インストール中 : clamav-data-0.98.7-1.el7.noarch 2/5
インストール中 : clamav-lib-0.98.7-1.el7.x86_64 3/5
インストール中 : clamav-update-0.98.7-1.el7.x86_64 4/5
インストール中 : clamav-0.98.7-1.el7.x86_64 5/5
検証中 : clamav-data-0.98.7-1.el7.noarch 1/5
検証中 : clamav-filesystem-0.98.7-1.el7.noarch 2/5
検証中 : clamav-lib-0.98.7-1.el7.x86_64 3/5
検証中 : clamav-update-0.98.7-1.el7.x86_64 4/5
検証中 : clamav-0.98.7-1.el7.x86_64 5/5
インストール:
clamav.x86_64 0:0.98.7-1.el7 clamav-update.x86_64 0:0.98.7-1.el7
依存性関連をインストールしました:
clamav-data.noarch 0:0.98.7-1.el7 clamav-filesystem.noarch 0:0.98.7-1.el7
clamav-lib.x86_64 0:0.98.7-1.el7
完了しました!
2個のパッケージと3個の依存関係のパッケージがインストールされる
clamav-0.98.7-1.el7.x86_64
clamav-update-0.98.7-1.el7.x86_64
clamav-data-0.98.7-1.el7.noarch
clamav-filesystem-0.98.7-1.el7.noarch
clamav-lib-0.98.7-1.el7.x86_64
rpmコマンドでファイルのパスを確認
[root@server2 ~]# rpm -qliv clamav
Name : clamav
Version : 0.98.7
Release : 1.el7
Architecture: x86_64
Install Date: 2015年05月10日 07時33分04秒
Group : Applications/File
Size : 2247528
License : GPLv2
Signature : RSA/SHA256, 2015年04月30日 22時54分50秒, Key ID 6a2faea2352c64e5
Source RPM : clamav-0.98.7-1.el7.src.rpm
Build Date : 2015年04月30日 03時47分04秒
Build Host : buildvm-20.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://www.clamav.net
Summary : End-user tools for the Clam Antivirus scanner
Description :
Clam AntiVirus is an anti-virus toolkit for UNIX. The main purpose of this
software is the integration with mail servers (attachment scanning). The
package provides a flexible and scalable multi-threaded daemon, a command
line scanner, and a tool for automatic updating via Internet. The programs
are based on a shared library distributed with the Clam AntiVirus package,
which you can use with your own software. The virus database is based on
the virus database from OpenAntiVirus, but contains additional signatures
(including signatures for popular polymorphic viruses, too) and is KEPT UP
TO DATE.
-rwxr-xr-x 1 root root 90376 4月 30 03:46 /usr/bin/clambc
-rwxr-xr-x 1 root root 94024 4月 30 03:46 /usr/bin/clamconf
-rwxr-xr-x 1 root root 175992 4月 30 03:46 /usr/bin/clamdscan
-rwxr-xr-x 1 root root 172008 4月 30 03:46 /usr/bin/clamdtop
-rwxr-xr-x 1 root root 119280 4月 30 03:46 /usr/bin/clamscan
-rwxr-xr-x 1 root root 94224 4月 30 03:46 /usr/bin/clamsubmit
-rwxr-xr-x 1 root root 160872 4月 30 03:46 /usr/bin/sigtool
drwxr-xr-x 2 root root 0 4月 30 03:47 /usr/share/doc/clamav-0.98.7
-rw-r--r-- 1 root root 3203 4月 23 04:49 /usr/share/doc/clamav-0.98.7/AUTHORS
-rw-r--r-- 1 root root 24 4月 23 04:49 /usr/share/doc/clamav-0.98.7/BUGS
-rw-r--r-- 1 root root 18738 4月 23 04:49 /usr/share/doc/clamav-0.98.7/COPYING
-rw-r--r-- 1 root root 736067 4月 24 01:02 /usr/share/doc/clamav-0.98.7/ChangeLog
-rw-r--r-- 1 root root 61 4月 23 04:49 /usr/share/doc/clamav-0.98.7/FAQ
-rw-r--r-- 1 root root 1861 4月 23 04:49 /usr/share/doc/clamav-0.98.7/NEWS
-rw-r--r-- 1 root root 98200 4月 23 04:49 /usr/share/doc/clamav-0.98.7/README
-rw-r--r-- 1 root root 138 4月 23 04:49 /usr/share/doc/clamav-0.98.7/UPGRADE
-rw-r--r-- 1 root root 214798 4月 24 01:07 /usr/share/doc/clamav-0.98.7/clamdoc.pdf
-rw-r--r-- 1 root root 120286 4月 24 01:07 /usr/share/doc/clamav-0.98.7/phishsigs_howto.pdf
-rw-r--r-- 1 root root 126165 4月 24 01:07 /usr/share/doc/clamav-0.98.7/signatures.pdf
-rw-r--r-- 1 root root 658 4月 30 03:46 /usr/share/man/man1/clambc.1.gz
-rw-r--r-- 1 root root 494 4月 30 03:46 /usr/share/man/man1/clamconf.1.gz
-rw-r--r-- 1 root root 1449 4月 30 03:46 /usr/share/man/man1/clamdscan.1.gz
-rw-r--r-- 1 root root 2259 4月 30 03:46 /usr/share/man/man1/clamdtop.1.gz
-rw-r--r-- 1 root root 3903 4月 30 03:46 /usr/share/man/man1/clamscan.1.gz
-rw-r--r-- 1 root root 451 4月 30 03:46 /usr/share/man/man1/clamsubmit.1.gz
-rw-r--r-- 1 root root 1709 4月 30 03:46 /usr/share/man/man1/sigtool.1.gz
-rw-r--r-- 1 root root 4091 4月 30 03:46 /usr/share/man/man5/clamav-milter.conf.5.gz
-rw-r--r-- 1 root root 6197 4月 30 03:46 /usr/share/man/man5/clamd.conf.5.gz
[root@server2 ~]# rpm -qliv clamav-update
Name : clamav-update
Version : 0.98.7
Release : 1.el7
Architecture: x86_64
Install Date: 2015年05月10日 07時33分03秒
Group : Applications/File
Size : 182427
License : GPLv2
Signature : RSA/SHA256, 2015年04月30日 22時57分27秒, Key ID 6a2faea2352c64e5
Source RPM : clamav-0.98.7-1.el7.src.rpm
Build Date : 2015年04月30日 03時47分04秒
Build Host : buildvm-20.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://www.clamav.net
Summary : Auto-updater for the Clam Antivirus scanner data-files
Description :
This package contains programs which can be used to update the clamav
anti-virus database automatically. It uses the freshclam(1) utility for
this task. To activate it, uncomment the entry in /etc/cron.d/clamav-update.
-rw------- 1 root root 203 4月 30 03:38 /etc/cron.d/clamav-update
-rw-r--r-- 1 root root 8561 4月 30 03:46 /etc/freshclam.conf ← 設定ファイル
-rw-r--r-- 1 root root 62 4月 30 03:38 /etc/logrotate.d/clamav-update
-rw-r--r-- 1 root root 955 4月 30 03:38 /etc/sysconfig/freshclam ← 設定ファイル
-rwxr-xr-x 1 root root 165176 4月 30 03:46 /usr/bin/freshclam
-rwxr-xr-x 1 root root 1492 4月 30 03:38 /usr/share/clamav/freshclam-sleep
-rw-r--r-- 1 root root 2168 4月 30 03:46 /usr/share/man/man1/freshclam.1.gz
-rw-r--r-- 1 root root 3810 4月 30 03:46 /usr/share/man/man5/freshclam.conf.5.gz
-rw-rw-r-- 1 clamupdaclamupda 0 4月 30 03:46 /var/lib/clamav/daily.cld
-rw-rw-r-- 1 clamupdaclamupda 0 4月 30 03:46 /var/lib/clamav/main.cld
-rw-rw-r-- 1 root clamupda 0 4月 30 03:46 /var/log/freshclam.log
ウィルス定義ファイル最新化の有効化
Clam AntiVirus 設定ファイル/etc/freshclam.confの編集
[root@server2 ~]# vi /etc/freshclam.conf
# Comment or remove the line below.
Example
#Example ← #を追加してコメントアウト(最新化の有効化)
# Path to the database directory.
# WARNING: It must match clamd.conf's directive!
# Default: hardcoded (depends on installation options)
#DatabaseDirectory /var/lib/clamav
DatabaseDirectory /var/lib/clamav ← コメントを解除
# Path to the log file (make sure it has proper permissions)
# Default: disabled
#UpdateLogFile /var/log/freshclam.log
UpdateLogFile /var/log/freshclam.log ← コメントを解除
# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
# Default: clamav (may depend on installation options)
#DatabaseOwner clamupdate
DatabaseOwner clamupdate ← コメントを解除
# Uncomment the following line and replace XY with your country
# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
# You can use db.XY.ipv6.clamav.net for IPv6 connections.
#DatabaseMirror db.XY.clamav.net
DatabaseMirror db.jp.clamav.net ← ウィルス定義ファイル入手元を日本に変更
Clam AntiVirus 設定ファイル/etc/sysconfig/freshclamの編集
[root@server2 ~]# vi /etc/sysconfig/freshclam
### !!!!! REMOVE ME !!!!!!
### REMOVE ME: By default, the freshclam update is disabled to avoid
### REMOVE ME: network access without prior activation
FRESHCLAM_DELAY=disabled-warn # REMOVE ME
↓
#FRESHCLAM_DELAY=disabled-warn # REMOVE ME ← #を追加してコメントアウト(自動アップデート有効化)
ウィルス定義ファイルの更新
[root@server2 ~]# freshclam
ClamAV update process started at Sun May 10 07:40:32 2015
main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
WARNING: getfile: daily-19996.cdiff not found on remote server (IP: 120.29.176.126)
WARNING: getpatch: Can't download daily-19996.cdiff from db.jp.clamav.net
WARNING: getfile: daily-19996.cdiff not found on remote server (IP: 203.178.137.175)
WARNING: getpatch: Can't download daily-19996.cdiff from db.jp.clamav.net
WARNING: getfile: daily-19996.cdiff not found on remote server (IP: 218.44.253.75)
WARNING: getpatch: Can't download daily-19996.cdiff from db.jp.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Downloading daily.cvd [100%]
daily.cld updated (version: 20440, sigs: 1384927, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 254, sigs: 45, f-level: 63, builder: anvilleg)
Database updated (3809197 signatures) from db.jp.clamav.net (IP: 120.29.176.126)
[root@server2 ~]# freshclam
ClamAV update process started at Sun May 10 07:43:46 2015
main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
daily.cld is up to date (version: 20440, sigs: 1384927, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 254, sigs: 45, f-level: 63, builder: anvilleg)
ウィルススキャン確認(/etc/passwdをスキャンしてみる)
[root@server2 ~]# clamscan --infected --remove --recursive /etc/passwd
----------- SCAN SUMMARY -----------
Known viruses: 3803624
Engine version: 0.98.7
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 19.003 sec (0 m 19 s)
毎日ウィルス定義ファイルを最新化して、全てのファイルをスキャンするスプリクト作成
[root@server2 ~]# vi /etc/cron.daily/clamscan.sh
#!/bin/bash
PATH=/usr/bin:/bin
# ウイルススキャン除外リスト設定
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=$i"
else
excludeopt="${excludeopt} --exclude=$i"
fi
done
fi
# clamavをアップデート
yum -y update clamav > /dev/null 2>&1
# ウィルス定義ファイルを最新化
freshclam > /dev/null
# ウイルスに関するメッセージを入れる変数作成
CLAMSCANTMP=`mktemp`
# スキャン実行、ウイルスが有ったら削除、mktempで作成したファイルにメッセージを入れる
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
# ウイルスが有った場合メッセージをメール送信
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found" hoge@example.com
# ウイルスが無く正しく動作している場合もメール送信
[ -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
echo "clamscan normal end" | mail -s "Virus Not Found" hoge@example.com
# メールを送ったらmktempで作成したファイルは破棄
rm -f $CLAMSCANTMP
Clam AntiVirus定期自動実行スクリプトに実行権限付加
[root@server2 ~]# chmod 700 /etc/cron.daily/clamscan.sh
スキャン除外設定
[root@server2 ~]# echo "/proc/" >> clamscan.exclude
[root@server2 ~]# echo "/sys/" >> clamscan.exclude
[root@server2 ~]# echo "/backup/" >> clamscan.exclude
[root@server2 ~]# echo "/home/share/" >> clamscan.exclude
デフォルトでインストールされるウィルス定義ファイルの自動最新化スクリプトを削除
[root@server2 ~]# rm -f /etc/cron.d/clamav-update
ちなみにデフォルトでは3時間毎に更新チェックするような設定になっている
[root@server2 ~]# vi /etc/cron.d/clamav-update
## Adjust this line...
MAILTO=root
## It is ok to execute it as root; freshclam drops privileges and becomes
## user 'clamupdate' as soon as possible
0 */3 * * * root /usr/share/clamav/freshclam-sleep